package zhupf.test.designPattern.singleton;

/**
 * 单例模式，第三种，懒汉模式（线程不安全）
 *
 * 优点：起到了懒加载的模式，但是只能是单线程
 *
 *  缺点： 当线程走到 if（）判断的时候，其他线程也进行了if()，这样就会创建多个对象
 *
 *  实际开发中，不要使用这种模式
 */
public class SingletonTest03 {
    public static void main(String[] args) {
        for (int i = 0 ;i<10;i++){
            new Thread(()->{
                System.out.println(Singleton03.getInstance());
            },String.valueOf(i)).start();
        }
    }
}

/**
 * 私有化构造
 * 对外提供公共方法，
 */
class Singleton03{
    private static Singleton03 instance;

    private Singleton03(){

    }

    public static Singleton03 getInstance(){
        if(instance == null){
            instance =  new Singleton03();
        }
        return instance;
    }
}
